package cn.huaqingcheng.tool.http.spi;

import cn.huaqingcheng.tool.http.HttpRequest;
import cn.huaqingcheng.tool.http.HttpResponse;

import java.io.File;
import java.nio.file.Path;

/**
 * HTTP 客户端
 **/
public interface HttpClient {

    /**
     * 执行 HTTP 请求
     *
     * @param request 请求
     * @return 响应
     */
    HttpResponse<String> exec(HttpRequest request);

    /**
     * 执行下载请求, 理论上来说 request 应该是 GET 但是不强求
     *
     * @param request 请求
     * @param file    下载到目标文件
     */
    HttpResponse<Path> exec(HttpRequest request, File file);

}
